package presentacion;

import java.awt.EventQueue;

import javax.swing.JFrame;

import java.awt.Toolkit;

import javax.swing.border.TitledBorder;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.SwingConstants;
import javax.swing.JPanel;
import javax.swing.border.LineBorder;

import java.awt.Color;
import java.awt.Font;

import javax.swing.JButton;

import dominio.ListenerCerrarVentana;
import dominio.Util;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.Cursor;

import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JSeparator;
import javax.swing.ButtonGroup;

public class Estadisticas {

	JFrame VentanaEstadisticas;
	private JLabel lblPodium;
	private JLabel lbl1;
	private JPanel Podium;
	private JLabel lbl2;
	private JLabel lbl3;
	private JLabel lbl2Foto;
	private JLabel lbl3Foto;
	private JLabel lbl1Foto;
	private JPanel Premios;
	private JLabel lblPrimero;
	private JLabel lblSegundo;
	private JLabel lblTercero;
	private JLabel lblValorDelPrimero;
	private JLabel lblValorDelSegundo;
	private JLabel lblValorDelTercero;
	private JPanel Estadisticas;
	private JLabel lblNDeInscritos;
	private JLabel lblNDeAbandonos;
	private JLabel lblNumInscritos;
	private JLabel lblNumAbandonos;
	private JLabel lblDuracionMedia;
	private JLabel lblDuracion;
	private JPanel Tiempos;
	private JLabel lblPrimerClasificado;
	private JLabel lblDuracion1;
	private JLabel lblSegundoClasificado;
	private JLabel lblTercerClasificado;
	private JLabel label;
	private JLabel label_1;
	private JButton btnAtras;
	private JMenuBar menuBar;
	private JMenu mnArchivo;
	private JMenu mnAyuda;
	private JMenuItem mntmAyuda;
	private JMenuItem mntmAcercaDe;
	private JMenuItem mntmAtrs;
	private JMenuItem mntmSalir;
	private JMenu mnCambiarIdioma;
	private JRadioButtonMenuItem mntmEspaol;
	private JRadioButtonMenuItem mntmIngls;
	private JSeparator separator;
	private final ButtonGroup buttonGroup = new ButtonGroup();
	private JButton button;
	private String nombreCarrera;
	private JSeparator separator_1;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Estadisticas window = new Estadisticas(null);
					window.VentanaEstadisticas.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public Estadisticas(String nombre) {
		nombreCarrera = nombre;
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		VentanaEstadisticas = new JFrame();
		VentanaEstadisticas.getContentPane().setBackground(Color.WHITE);
		VentanaEstadisticas.addWindowListener(new ListenerCerrarVentana(
				VentanaEstadisticas));
		VentanaEstadisticas
				.setIconImage(Toolkit
						.getDefaultToolkit()
						.getImage(
								Estadisticas.class
										.getResource("/recursos/estadisticas-icono-7540-32.png"))); //$NON-NLS-1$
		VentanaEstadisticas.setResizable(false);
		VentanaEstadisticas
				.setTitle(Messages.getString("Estadisticas.0") + nombreCarrera); //$NON-NLS-1$
		VentanaEstadisticas.setBounds(100, 100, 775, 367);
		VentanaEstadisticas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		VentanaEstadisticas.setLocationRelativeTo(null);
		{
			Podium = new JPanel();
			Podium.setBackground(Color.WHITE);
			Podium.setBounds(12, 27, 387, 235);
			Podium.setBorder(new TitledBorder(
					null,
					Messages.getString("Estadisticas.1"), TitledBorder.LEADING, TitledBorder.TOP, null, null)); //$NON-NLS-1$
			Podium.setLayout(null);
			{
				lbl1 = new JLabel("María Silva Montero"); //$NON-NLS-1$
				lbl1.setFont(new Font("Tahoma", Font.BOLD, 14));
				lbl1.setHorizontalAlignment(SwingConstants.CENTER);
				lbl1.setBounds(109, 80, 154, 19);
				Podium.add(lbl1);
			}
		}
		Premios = new JPanel();
		Premios.setBackground(Color.WHITE);
		Premios.setBounds(404, 27, 120, 224);
		Premios.setBorder(new TitledBorder(
				null,
				Messages.getString("Estadisticas.4"), TitledBorder.LEADING, TitledBorder.TOP, null, null)); //$NON-NLS-1$
		Estadisticas = new JPanel();
		Estadisticas.setBackground(Color.WHITE);
		Estadisticas.setBounds(534, 162, 222, 93);
		Estadisticas
				.setBorder(new TitledBorder(
						null,
						Messages.getString("Estadisticas.5"), TitledBorder.LEADING, TitledBorder.TOP, null, null)); //$NON-NLS-1$
		Tiempos = new JPanel();
		Tiempos.setBackground(Color.WHITE);
		Tiempos.setBounds(534, 27, 222, 122);
		Tiempos.setBorder(new TitledBorder(
				null,
				Messages.getString("Estadisticas.6"), TitledBorder.LEADING, TitledBorder.TOP, null, null)); //$NON-NLS-1$
		btnAtras = new JButton(Messages.getString("Estadisticas.7")); //$NON-NLS-1$
		btnAtras.setMnemonic('B');
		btnAtras.setBounds(626, 268, 120, 31);
		btnAtras.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
		btnAtras.setToolTipText(Messages.getString("Estadisticas.8")); //$NON-NLS-1$
		btnAtras.addActionListener(new AtrasActionListener());
		btnAtras.setFont(new Font("Tahoma", Font.PLAIN, 16)); //$NON-NLS-1$
		btnAtras.setIcon(new ImageIcon(Estadisticas.class
				.getResource("/recursos/Back.png"))); //$NON-NLS-1$
		button = new JButton(""); //$NON-NLS-1$
		button.setMnemonic('H');
		button.setToolTipText(Messages.getString("Estadisticas.button.toolTipText")); //$NON-NLS-1$
		button.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
		button.addActionListener(new AyudaActionListener());
		button.setIcon(new ImageIcon(Estadisticas.class
				.getResource("/recursos/help.png"))); //$NON-NLS-1$
		button.setBounds(723, 0, 28, 23);
		Tiempos.setLayout(null);
		{
			lblDuracionMedia = new JLabel(Messages.getString("Estadisticas.13")); //$NON-NLS-1$
			lblDuracionMedia.setBounds(10, 21, 146, 14);
			Tiempos.add(lblDuracionMedia);
		}
		{
			lblDuracion = new JLabel("5:30:10"); //$NON-NLS-1$
			lblDuracion.setBounds(153, 22, 46, 14);
			Tiempos.add(lblDuracion);
			lblDuracion.setFont(new Font("Tahoma", Font.BOLD, 11)); //$NON-NLS-1$
		}
		{
			lblPrimerClasificado = new JLabel(
					Messages.getString("Estadisticas.16")); //$NON-NLS-1$
			lblPrimerClasificado.setFont(new Font("Tahoma", Font.ITALIC, 13)); //$NON-NLS-1$
			lblPrimerClasificado.setBounds(10, 46, 150, 14);
			Tiempos.add(lblPrimerClasificado);
		}
		{
			lblDuracion1 = new JLabel("3:50:01"); //$NON-NLS-1$
			lblDuracion1.setFont(new Font("Tahoma", Font.BOLD, 11)); //$NON-NLS-1$
			lblDuracion1.setBounds(153, 47, 46, 14);
			Tiempos.add(lblDuracion1);
		}
		{
			lblSegundoClasificado = new JLabel(
					Messages.getString("Estadisticas.19")); //$NON-NLS-1$
			lblSegundoClasificado.setFont(new Font("Tahoma", Font.ITALIC, 13)); //$NON-NLS-1$
			lblSegundoClasificado.setBounds(10, 69, 150, 14);
			Tiempos.add(lblSegundoClasificado);
		}
		{
			lblTercerClasificado = new JLabel(
					Messages.getString("Estadisticas.20")); //$NON-NLS-1$
			lblTercerClasificado.setFont(new Font("Tahoma", Font.ITALIC, 13)); //$NON-NLS-1$
			lblTercerClasificado.setBounds(10, 94, 150, 14);
			Tiempos.add(lblTercerClasificado);
		}
		{
			label = new JLabel("4:15:20"); //$NON-NLS-1$
			label.setFont(new Font("Tahoma", Font.BOLD, 11)); //$NON-NLS-1$
			label.setBounds(153, 69, 46, 14);
			Tiempos.add(label);
		}
		{
			label_1 = new JLabel("4:18:58"); //$NON-NLS-1$
			label_1.setFont(new Font("Tahoma", Font.BOLD, 11)); //$NON-NLS-1$
			label_1.setBounds(153, 94, 46, 14);
			Tiempos.add(label_1);
		}
		Estadisticas.setLayout(null);
		{
			lblNDeInscritos = new JLabel(Messages.getString("Estadisticas.25")); //$NON-NLS-1$
			lblNDeInscritos.setBackground(Color.WHITE);
			lblNDeInscritos.setBounds(10, 26, 139, 14);
			Estadisticas.add(lblNDeInscritos);
		}
		{
			lblNDeAbandonos = new JLabel(Messages.getString("Estadisticas.26")); //$NON-NLS-1$
			lblNDeAbandonos.setBounds(10, 51, 139, 14);
			Estadisticas.add(lblNDeAbandonos);
		}
		{
			lblNumInscritos = new JLabel("120"); //$NON-NLS-1$
			lblNumInscritos.setHorizontalAlignment(SwingConstants.RIGHT);
			lblNumInscritos.setFont(new Font("Tahoma", Font.BOLD, 11)); //$NON-NLS-1$
			lblNumInscritos.setBounds(176, 26, 34, 14);
			Estadisticas.add(lblNumInscritos);
		}
		{
			lblNumAbandonos = new JLabel("5"); //$NON-NLS-1$
			lblNumAbandonos.setHorizontalAlignment(SwingConstants.RIGHT);
			lblNumAbandonos.setFont(new Font("Tahoma", Font.BOLD, 11)); //$NON-NLS-1$
			lblNumAbandonos.setBounds(176, 51, 34, 14);
			Estadisticas.add(lblNumAbandonos);
		}
		Premios.setLayout(null);
		{
			lblPrimero = new JLabel(Messages.getString("Estadisticas.31")); //$NON-NLS-1$
			lblPrimero.setFont(new Font("Tahoma", Font.BOLD, 13)); //$NON-NLS-1$
			lblPrimero.setBounds(20, 28, 84, 14);
			Premios.add(lblPrimero);
		}
		{
			lblSegundo = new JLabel(Messages.getString("Estadisticas.33")); //$NON-NLS-1$
			lblSegundo.setFont(new Font("Tahoma", Font.BOLD, 13)); //$NON-NLS-1$
			lblSegundo.setBounds(20, 80, 84, 14);
			Premios.add(lblSegundo);
		}
		{
			lblTercero = new JLabel(Messages.getString("Estadisticas.35")); //$NON-NLS-1$
			lblTercero.setFont(new Font("Tahoma", Font.BOLD, 13)); //$NON-NLS-1$
			lblTercero.setBounds(20, 136, 84, 14);
			Premios.add(lblTercero);
		}
		{
			lblValorDelPrimero = new JLabel("30.000€"); //$NON-NLS-1$
			lblValorDelPrimero.setHorizontalAlignment(SwingConstants.CENTER);
			lblValorDelPrimero.setBounds(30, 53, 62, 14);
			Premios.add(lblValorDelPrimero);
		}
		{
			lblValorDelSegundo = new JLabel("15.000€"); //$NON-NLS-1$
			lblValorDelSegundo.setHorizontalAlignment(SwingConstants.CENTER);
			lblValorDelSegundo.setBounds(30, 105, 62, 14);
			Premios.add(lblValorDelSegundo);
		}
		{
			lblValorDelTercero = new JLabel("7.500€"); //$NON-NLS-1$
			lblValorDelTercero.setHorizontalAlignment(SwingConstants.CENTER);
			lblValorDelTercero.setBounds(30, 161, 62, 14);
			Premios.add(lblValorDelTercero);
		}
		{
			lbl2 = new JLabel("Mario Cañas Baño"); //$NON-NLS-1$
			lbl2.setFont(new Font("Tahoma", Font.BOLD, 14));
			lbl2.setHorizontalAlignment(SwingConstants.CENTER);
			lbl2.setBounds(12, 139, 132, 19);
			Podium.add(lbl2);
		}
		{
			lbl3 = new JLabel(Messages.getString("Estadisticas.lbl3.text")); //$NON-NLS-1$ //$NON-NLS-1$
			lbl3.setFont(new Font("Tahoma", Font.BOLD, 14));
			lbl3.setHorizontalAlignment(SwingConstants.CENTER);
			lbl3.setBounds(227, 151, 154, 19);
			Podium.add(lbl3);
		}
		{
			lbl1Foto = new JLabel(""); //$NON-NLS-1$
			lbl1Foto.setIcon(new ImageIcon(Estadisticas.class
					.getResource("/recursos/nada.png"))); //$NON-NLS-1$
			lbl1Foto.setBorder(new LineBorder(new Color(0, 0, 0)));
			lbl1Foto.setBounds(158, 13, 60, 60);
			Podium.add(lbl1Foto);
		}
		{
			lbl2Foto = new JLabel(""); //$NON-NLS-1$
			lbl2Foto.setIcon(new ImageIcon(Estadisticas.class
					.getResource("/recursos/nada.png"))); //$NON-NLS-1$
			lbl2Foto.setBorder(new LineBorder(new Color(0, 0, 0)));
			lbl2Foto.setBounds(50, 73, 60, 60);
			Podium.add(lbl2Foto);
		}
		{
			lbl3Foto = new JLabel(""); //$NON-NLS-1$
			lbl3Foto.setIcon(new ImageIcon(Estadisticas.class
					.getResource("/recursos/nada.png"))); //$NON-NLS-1$
			lbl3Foto.setBorder(new LineBorder(new Color(0, 0, 0)));
			lbl3Foto.setBounds(264, 84, 60, 60);
			Podium.add(lbl3Foto);
		}
		{
			lblPodium = new JLabel(""); //$NON-NLS-1$
			lblPodium.setBounds(12, 63, 357, 175);
			Podium.add(lblPodium);
			lblPodium.setVerticalAlignment(SwingConstants.BOTTOM);
			lblPodium.setHorizontalAlignment(SwingConstants.CENTER);
			lblPodium.setIcon(new ImageIcon(Estadisticas.class
					.getResource("/recursos/Podium350x175.png"))); //$NON-NLS-1$
		}
		VentanaEstadisticas.getContentPane().setLayout(null);
		VentanaEstadisticas.getContentPane().add(button);
		VentanaEstadisticas.getContentPane().add(Estadisticas);
		VentanaEstadisticas.getContentPane().add(Tiempos);
		{
			separator_1 = new JSeparator();
			separator_1.setBounds(0, 40, 220, 1);
			Tiempos.add(separator_1);
		}
		VentanaEstadisticas.getContentPane().add(Podium);
		VentanaEstadisticas.getContentPane().add(Premios);
		VentanaEstadisticas.getContentPane().add(btnAtras);
		{
			menuBar = new JMenuBar();
			VentanaEstadisticas.setJMenuBar(menuBar);
			{
				mnArchivo = new JMenu(Messages.getString("Estadisticas.50")); //$NON-NLS-1$
				mnArchivo.setMnemonic('1');
				mnArchivo.setCursor(Cursor
						.getPredefinedCursor(Cursor.HAND_CURSOR));
				menuBar.add(mnArchivo);
				{
					mnCambiarIdioma = new JMenu(
							Messages.getString("Estadisticas.51")); //$NON-NLS-1$
					mnCambiarIdioma.setCursor(Cursor
							.getPredefinedCursor(Cursor.HAND_CURSOR));
					mnCambiarIdioma.setIcon(new ImageIcon(Estadisticas.class
							.getResource("/recursos/select_language_32.png"))); //$NON-NLS-1$
					mnArchivo.add(mnCambiarIdioma);
					{
						mntmEspaol = new JRadioButtonMenuItem(
								Messages.getString("Estadisticas.53")); //$NON-NLS-1$
						mntmEspaol.setCursor(Cursor
								.getPredefinedCursor(Cursor.HAND_CURSOR));
						mntmEspaol.setIcon(new ImageIcon(Estadisticas.class
								.getResource("/recursos/banderaEsp.gif"))); //$NON-NLS-1$
						mntmEspaol.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent e) {
								Util.internacionalizarMensajes("castellano"); //$NON-NLS-1$
								Messages.setIdioma("castellano"); //$NON-NLS-1$
								Estadisticas ventana = new Estadisticas(
										nombreCarrera);
								ventana.VentanaEstadisticas.setVisible(true);
								VentanaEstadisticas.setVisible(false);
								ventana.mntmEspaol.setSelected(true);
								ventana.mntmIngls.setSelected(false);
							}
						});
						buttonGroup.add(mntmEspaol);
						mnCambiarIdioma.add(mntmEspaol);
					}
					{
						mntmIngls = new JRadioButtonMenuItem(
								Messages.getString("Estadisticas.55")); //$NON-NLS-1$
						mntmIngls.setCursor(Cursor
								.getPredefinedCursor(Cursor.HAND_CURSOR));
						mntmIngls.setIcon(new ImageIcon(Estadisticas.class
								.getResource("/recursos/banderaIng.gif"))); //$NON-NLS-1$
						mntmIngls.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent e) {
								Util.internacionalizarMensajes("Inglés"); //$NON-NLS-1$
								Messages.setIdioma("Inglés"); //$NON-NLS-1$
								Estadisticas ventana = new Estadisticas(
										nombreCarrera);
								ventana.VentanaEstadisticas.setVisible(true);
								VentanaEstadisticas.setVisible(false);
								ventana.mntmEspaol.setSelected(false);
								ventana.mntmIngls.setSelected(true);
							}
						});
						buttonGroup.add(mntmIngls);
						mnCambiarIdioma.add(mntmIngls);
					}
				}
				{
					separator = new JSeparator();
					mnArchivo.add(separator);
				}
				{
					mntmAtrs = new JMenuItem(
							Messages.getString("Estadisticas.57")); //$NON-NLS-1$
					mntmAtrs.setCursor(Cursor
							.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmAtrs.addActionListener(new AtrasActionListener());
					mntmAtrs.setIcon(new ImageIcon(CompeticionX.class
							.getResource("/recursos/Back.png"))); //$NON-NLS-1$
					mnArchivo.add(mntmAtrs);
				}
				{
					mntmSalir = new JMenuItem(
							Messages.getString("Estadisticas.59")); //$NON-NLS-1$
					mntmSalir.setMnemonic('E');
					mntmSalir.setCursor(Cursor
							.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmSalir.addActionListener(new ActionListener() {
						public void actionPerformed(ActionEvent e) {
							if (JOptionPane.showConfirmDialog(
									VentanaEstadisticas,
									Messages.getString("Estadisticas.60"), //$NON-NLS-1$
									Messages.getString("Estadisticas.61"), //$NON-NLS-1$
									JOptionPane.OK_CANCEL_OPTION) == JOptionPane.YES_OPTION) {
								System.exit(0);
							}
						}
					});
					mntmSalir.setIcon(new ImageIcon(Menu.class
							.getResource("/recursos/login_out_32.png"))); //$NON-NLS-1$
					mnArchivo.add(mntmSalir);
				}
			}
			{
				mnAyuda = new JMenu(Messages.getString("Estadisticas.63")); //$NON-NLS-1$
				mnAyuda.setMnemonic('3');
				mnAyuda.setCursor(Cursor
						.getPredefinedCursor(Cursor.HAND_CURSOR));
				menuBar.add(mnAyuda);
				{
					mntmAyuda = new JMenuItem(
							Messages.getString("Estadisticas.64")); //$NON-NLS-1$
					mntmAyuda.setCursor(Cursor
							.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmAyuda.addActionListener(new AyudaActionListener());
					mntmAyuda.setIcon(new ImageIcon(Menu.class
							.getResource("/recursos/Ayuda.png"))); //$NON-NLS-1$
					mnAyuda.add(mntmAyuda);
				}
				{
					mntmAcercaDe = new JMenuItem(
							Messages.getString("Estadisticas.66")); //$NON-NLS-1$
					mntmAcercaDe.setCursor(Cursor
							.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmAcercaDe.addActionListener(new ActionListener() {
						public void actionPerformed(ActionEvent e) {
							AcercaDe app = null;
							app = new AcercaDe(VentanaEstadisticas);
							app.VentanaAcercaDe.setVisible(true);
							VentanaEstadisticas.enable(false);
						}
					});
					mntmAcercaDe.setIcon(new ImageIcon(Menu.class
							.getResource("/recursos/LOGO-pqeq.png"))); //$NON-NLS-1$
					mnAyuda.add(mntmAcercaDe);
				}
			}
		}

		Util.recuperarIdioma(mntmEspaol, mntmIngls);
	}

	private class AyudaActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			JOptionPane
			.showMessageDialog(
					VentanaEstadisticas,
					Messages.getString("Estadisticas.12"), //$NON-NLS-1$
					Messages.getString("Estadisticas.14"), JOptionPane.INFORMATION_MESSAGE); //$NON-NLS-1$

		}
	}

	private class AtrasActionListener implements ActionListener {
		public void actionPerformed(ActionEvent arg0) {
			VentanaEstadisticas.setVisible(false);
		}
	}

	private class VentanaEstadisticasWindowListener extends WindowAdapter {
		@Override
		public void windowClosing(WindowEvent arg0) {
			if (JOptionPane
					.showOptionDialog(
							VentanaEstadisticas,
							Messages.getString("Estadisticas.68"), Messages.getString("Estadisticas.69"), //$NON-NLS-1$ //$NON-NLS-2$
							JOptionPane.YES_NO_OPTION,
							JOptionPane.QUESTION_MESSAGE, null, null, null) == 0) {
				VentanaEstadisticas.setVisible(false);
			} else {
				// No cerrar aplicación
			}
		}
	}
}
